package br.com.caelum.vraptor.controller;

import java.util.List;

import javax.inject.Inject;

import br.com.caelum.vraptor.Controller;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.dao.VendaDAO;
import br.com.caelum.vraptor.dao.GenericDAO;
import br.com.caelum.vraptor.dao.VendedorDAO;
import br.com.caelum.vraptor.entidades.Venda;
import br.com.caelum.vraptor.entidades.Vendedor;

@Controller
public class VendaController {
	
	@Inject
	private Result result;
	
	@Inject
	private GenericDAO<Venda> dao;
	
	@Inject
	private Vendedor vendedor;
	@Inject
	private VendedorDAO vendedorDAO;
	
	public void add(){
		result.include("vendedor", vendedorDAO.find());
	}
	
	public List<Venda> list(){
		
		return dao.find();
		
	}
	
	public void save(Venda venda){
		
//		List<Venda> vendas = dao.find();
//		
//		double vendaTotalVendedor = 0;
//		
//		//Calcular somatorio de vendas do Vendedor da Venda Atual
//		for (Venda v : vendas) {
//			if (v.getVendedor().getCodVendedor() == venda.getVendedor().getCodVendedor()){
//				v.getVendedor().getValorVendas(v.getVendedor().getValorVendas()+=v.getValorTotal());
//			}
//		}
//		
//		//atingiu a meta
//		if (vendaTotalVendedor > 5000){
//			venda.setComissao(venda.getValorTotal() * 0.03);
//		}
//		
		
		
		dao.save(venda);
		
		result.redirectTo(this).list();
	}
	
	public Venda edit(Integer codVenda){
		return dao.find(codVenda);
	}
	
	public void delete(int codVenda){
		Venda venda = new Venda();
		venda.setCodVenda(codVenda);
		dao.delete(venda);
		result.redirectTo(this).list();
	}
	public Venda add_venda (Integer codVenda){
		return dao.find(codVenda);
	}
}
